Localization technique

ABSTRACT

A computer includes a processor and a memory. The memory stores instructions executable by the processor to receive, in a vehicle, object data from an external node, and upon identifying a point, in the received object data, that is within a volume defined based on vehicle position data received from a vehicle sensor, to determine an adjusted vehicle position based on the identified point and the vehicle position data.

BACKGROUND

A vehicle such as an autonomous or semi-autonomous vehicle can use datafrom a location sensor, e.g., GPS (Global Positioning System), to aidnavigation. An autonomous vehicle may compare its substantiallyreal-time location data to a map of an area in which the vehicle isoperating to locate the vehicle within the area and navigate the vehiclebased on the determined vehicle location. The location data may haveinaccuracies that can make it difficult to navigate the vehicle.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a block diagram showing an example sensor directed toward anexample road section.

FIG. 1B is a side view of the vehicle of FIG. 1A.

FIGS. 2A-2B show a flowchart of an exemplary process for operating thevehicle.

DETAILED DESCRIPTION Introduction

Disclosed herein is a computer comprising a processor and a memory. Thememory stores instructions executable by the processor to receive, in avehicle, object data from an external node, and upon identifying apoint, in the received object data, that is within a volume definedusing vehicle position data received from a vehicle sensor, to determinean adjusted vehicle position based on the identified point and thevehicle position data.

The identified point may be a reference point of an object described inthe received object data.

The instructions may further comprise instructions to determine thevolume based at least in part on vehicle dimensions.

A bottom of the volume may be centered at a projection of a vehiclereference point on a ground surface determined based on the vehicleposition data.

The instructions may further comprise instructions to operate thevehicle based on the adjusted vehicle position.

The instructions may further comprise instructions to filter the vehicleposition data by applying a first Kalman filter to the vehicle positiondata, and to filter position data of the identified point by applying asecond Kalman filter to the position data of the point.

The instructions may further comprise instructions to operate thevehicle based on the vehicle position data upon determining that theobject from the external node lacks a point within the volume.

The instructions may further comprise instructions to identify the pointwithin the volume only upon determining, based on the received objectdata, that the identified point is a reference point of an object with atype that matches a vehicle type.

The instructions may further comprise instructions to identify the pointwithin the volume only upon determining, based on the received objectdata, that the identified point is a reference point of an object withdimensions that matches the dimensions of the vehicle that received theobject data.

The instructions may further comprise instructions to determine thevolume with a bottom on a ground surface with predetermined dimensionscentered a projection vehicle position on a ground surface, and uponidentifying an object, from the broadcast data, with a reference pointthat is within the determined volume, to determine the adjusted vehicleposition based in part on location coordinates of the object referencepoint.

The position data may include at least a lateral coordinate, alongitudinal coordinate, an orientation, a lateral speed, a longitudinalspeed, and a rotational speed of the vehicle.

The object data may further include at least a lateral coordinate, alongitudinal coordinate, an orientation, a lateral speed, a longitudinalspeed, and a rotational speed of an object.

The object data may include at least one of location coordinates, anorientation, an object type, a speed, a rotational speed, a shape, anddimensions of the object.

Further disclosed herein is a computer that comprises a processor and amemory. The memory stores instructions executable by the processor toextract, from an object-data set received via an external node,extra-positional data that correlates with vehicle position data,independently filter the extra-positional and vehicle position data, andthen fuse the filtered extra-positional and vehicle position data toimprove vehicle localization.

The instructions may further comprise instructions to operate thevehicle based on the fused filtered extra-positional and vehicleposition data.

The instructions may further comprise instructions to filter the vehicleposition data by applying a first Kalman filter to the vehicle positiondata, and to filter the extra-positional data that correlates withvehicle position data by applying a second Kalman filter to theextra-positional data that correlates with the vehicle position data.

The instructions may further comprise to operate a vehicle based on thevehicle position data upon determining that the extra-positional datafrom the external node correlates with the vehicle position data.

The extra-positional data may include at least one of locationcoordinates, an orientation, an object type, a speed, a rotationalspeed, a shape, and dimensions of a vehicle.

The instructions may further comprise instructions to extract theextra-positional data that correlates with the vehicle position upondetermining, based on the received object-data set, that theextra-positional data describes an object with dimensions that match thedimensions of the vehicle that received the object-data set.

Further disclosed herein is a system comprising means for receivingbroadcast object data, means for determining a first position of avehicle based on vehicle sensor data, means for identifying a secondposition of the vehicle based on broadcast object data received from aremote computer and the first position, and means for determining afused position of the vehicle based on a filtered first position and afiltered second position of the vehicle.

Further disclosed is a computing device programmed to execute any of theabove method steps.

Yet further disclosed is a computer program product, comprising acomputer readable medium storing instructions executable by a computerprocessor, to execute any of the above method steps.

System Elements

A vehicle may include a location sensor, among others, that providesdata including a vehicle location (or position) and/or a vehicleorientation. A vehicle computer may operate the vehicle by actuatingvehicle propulsion, braking, and/or steering actuators based at least inpart on the data received from the vehicle location sensor. The locationand/or orientation data received from a vehicle sensor may beinaccurate, which may result in problems with vehicle navigation, e.g.,increasing a risk of a collision with another object.

Herein, systems and methods are disclosed to improve an accuracy of avehicle location sensor by fusing (i) data received from the vehiclelocation sensor and (ii) data received from an external object detectionsensor, e.g., a stationary sensor such as a Lidar, camera, radar, etc.mounted to a pole at a side of a road having a field-of-view thatincludes the vehicle, a sensor mounted to another vehicle, bicycle,drone, etc. According to one technique described herein, a vehiclecomputer can be programmed to: receive object data (or object data setincluding object data pertaining to one or more objects) from anexternal node, e.g. the stationary sensor, a sensor of a differentvehicle, etc.; receive vehicle position data from an onboard vehiclesensor; using the vehicle position data and map data, correlate a 3Dvolume of the vehicle relative to the map data; correlate the objectdata to the 3D map data; identify a point, in the received object data,that is within the volume; and determine an adjusted vehicle positionbased on the identified point and the vehicle position data. In thepresent context, an external node is any wireless node outside of thevehicle 101, e.g., the sensor 165, a remote computer, another vehicle,etc.

FIGS. 1A-1B illustrate an example system 100 including (i) a vehicle 101having a computer 110, actuator(s) 120, sensor(s) 130, a wirelessinterface 140, and a reference point 150, located in a geographical area160, and (ii) at least one sensor 165 (which in at least one example isfixed to infrastructure), having a computer 170 and a communicationinterface 175. A description of vehicle 101 components and how anexample vehicle 101 operates follows an exemplary description of thesensor 165 and multiple example methods of operation of the sensor 165.As will be apparent from the description that follows, sensor 165 cancommunicate with more than one vehicle (other vehicles not shown), andin at least one example, multiple sensors can be used. In theseexamples, each sensor may be identical; thus, only one sensor (sensor165) is shown.

A geographic area 160 (or area 160), in the present context, means atwo-dimensional (2D) area on the surface of the earth. Boundaries oredges of an area 160 may be defined by global positioning system (GPS)coordinates, e.g., as vertices of a triangular or rectangular area 160,a center of a circular area 160, etc. An area 160 may have anydimensions and/or shape, e.g., rectangular, oval, circular,non-geometrical shape, etc. An area 160 may include a section of a road,an intersection, etc. An area 160 may be defined by a detection range ofthe sensor 165, i.e., locations within a predetermined distance, e.g.,200 meters (m), from the sensor 165. In addition to vehicle 101, otherobjects (not shown) such as other vehicles, pedestrians, bicycles, etc.may be present in the area 160.

With continued reference to FIG. 1A, the system 100 may include one ormore sensor(s) 165 positioned, e.g., at a side of a road, anintersection, etc., and/or mounted to any non-moving object such as abuilding, a pole, etc. A detection range of a sensor 165, in the presentcontext, is a predefined distance from the sensor 165 location that alsoincludes an unobstructed field-of-view of the sensor 165—e.g., a rangeand line-of-sight by which vehicle 101 and/or other objects can bedetected. In other examples, a Lidar sensor 165 may be located on anysuitable moving or non-moving object.

The computer 170 of sensor 165 may include a processor and a memorystoring instructions executable by the processor. The computer 170memory includes one or more forms of computer-readable media, and storesinstructions executable by the processor of the sensor 165 forperforming various operations, including as disclosed herein.

The sensor 165 includes an object detection sensor and/or adepth-detection sensor. For example, the sensor 165 may include one ormore of a Lidar sensor, camera sensor, radar sensor, etc. The sensor 165may be stationary, e.g., mounted to a pole (see FIG. 1A) or moving,e.g., mounted to a second vehicle and having a field-of-view includingan area exterior to the respective second vehicle. For example, a Lidarsensor 165 may sweep the example area 160 by transmitting laser beams,and receiving reflections of the transmitted Lidar beams from outersurfaces of objects such as the vehicle 101, etc., and/or a groundsurface (e.g., point-cloud data). Using the point-cloud data, the Lidarsensor 165 computer 170 may be programmed to generate Lidar object databased on the received reflections. Table 1 illustrates exemplaryinformation that may comprise object data. As used herein, object datameans data describing attributes such as location, dimensions, etc., ofphysical objects in a 3D region, e.g., a volume above the area 160. Theobject data may include location coordinates x_(ix), y_(ix), z_(ix) ofpoints on outer surfaces of objects, e.g., the vehicle 101, which causea reflection of the emitted light beams. In other words, the object datamay include point cloud data, i.e., 3D location coordinates x_(ix),y_(ix), z_(ix) of a plurality of points within the field-of-view of theLidar sensor 165.

TABLE 1 Datum Description Object identifier A numeric value, e.g., 1, 2,3, etc. Object type Vehicle, bicycle, pedestrian, building, pole,sidewalk, road surface, etc. Location 2D or 3D location coordinatesx_(ix), y_(ix), z_(ix) of an object reference point, e.g., center point.Dimensions physical dimensions, e.g., length L, width W, height H. Shapephysical shapes, e.g., round, rectangular, etc. Orientation Theorientation θ_(ix) is a direction of movement and/or a direction ofobject (relative to an X or Y axis on the ground surface) based on ashape of the object, e.g., longitudinal direction of a vehicle. SpeedIncluding longitudinal and/or lateral speed {dot over (x)}_(ix), {dotover (y)}_(ix), and/or scalar speed of object. Rotational speed Aderivative {dot over (θ)}_(ix) of the orientation θ_(ix) of the objectover time.

Object data may include data pertaining to multiple objects, e.g., nobjects within the field-of-view of the sensor 165. In one example shownin Table 2, data associated with each object O₁ to O_(n) may includeobject data, as described in Table 1.

TABLE 2 Object identifier Data O₁ Object Type Location Dimensions etc. .. . . . . O₁₁ Object Type Location Dimensions etc . . .

The location data may specify (two-dimensional) 2D location coordinatesx_(ix), y_(ix) of an object with respect to a 2D coordinate system,e.g., X, Y, axes 180,185, or a 3D (three-dimensional) locationcoordinates x_(ix), y_(ix), z_(ix) of an object with respect to a 3Dcoordinate system, e.g., X, Y, Z axes 180,185, 190, and/or anorientation θ_(ix) of the object. The location coordinates included inobject data specify coordinates of a point of the object. As usedherein, with respect to example Table 1, an object point may be areference point 155, e.g., a center-point, of the object identifiedbased on dimensions, shape, etc. of the object. In yet another examplein the context of point cloud data, object data may specify locationcoordinates of point from which a reflection is received, e.g., anypoint on an outer surface of the object.

An orientation θ_(ix), in the present context, is a direction or pose ofan object on the ground plain relative to an X-axis or a Y-axis (e.g.,by way of example in the description that follows, orientation θ_(ix) isdescribed relative to the X-axis 180). Thus, the orientation θ_(ix) maybe a yaw angle on the ground plain. For example, an orientation θ_(ix)of the vehicle 101 may be specified by an angle between the X axis 180and the vehicle's longitudinal axis. In the present context, 2D locationcoordinates x_(ix), y_(ix) specify location coordinates of a projectionof the point 155 on the ground surface. The X, Y, Z axes 180, 185, 190may be GPS coordinates system. Thus, in one example, the computer 170may be programmed to determine the coordinates x_(ix), y_(ix) of anobject relative to the GPS coordinate system based on stored locationcoordinates of the sensor 165 and data received from the sensor 165.

In another example, the Lidar object data may include dimensions, type,location, orientation, shape, etc., of one or more detected objects. Forexample, the sensor 165 processor may be programmed to classify anobject as a car, truck, bicycle, pedestrian, building, vegetation, etc.using techniques such as semantic segmentation or the like. Thus,location coordinates x_(ix), y_(ix) may specify location coordinates of,e.g., a projection of a reference point 155 such as a center point(based on detected dimensions, e.g., length L, width W, height H, and/orshape of the object in the sensor 165) on the ground surface. Thecomputer 170 may calculate a center point 155 for the detected objectand determine the location coordinates of the calculated center point155 in the broadcast object data. Additionally, the object data mayinclude elevation coordinate z_(ix), as discussed above.

Additionally, or alternatively, multiple sensors 165 may collectivelycover an area 160. In one example, multiple sensors 165 may be placed ata location, e.g., mounted to a pole, each providing a field-of-view in aspecified direction. Additionally, or alternatively, multiple sensors165 may be located in an area 160, e.g., mounted to multipole poles,buildings, etc.

Sensor 165 may communicate via communication interface 175 to vehicle101 wireless interface 140, a remote computer, other sensors (e.g.,mounted elsewhere to infrastructure), etc. The communication interface175 may provide wired and/or wireless communication. The sensor 165 maybe programmed to broadcast object data via the communication interface175.

A wireless communication network (not shown), which may include aVehicle-to-Vehicle (V-to-V) and/or a Vehicle-to-Infrastructure (V-to-I)communication network, includes one or more structures, e.g., wirelesschip, transceiver, etc., by which the sensor 165, remote computer(s),vehicles (e.g., such as vehicle 101), etc., may communicate with oneanother, including any desired combination of wireless (e.g., cellular,wireless, satellite, microwave and radio frequency) communicationmechanisms and any desired network topology (or topologies when aplurality of communication mechanisms are utilized). Exemplary V-to-V orV-to-I communication networks include cellular, Bluetooth, IEEE 802.11,dedicated short range communications (DSRC), and/or wide area networks(WAN), including the Internet, providing data communication services.For example, the sensor 165 may transmit data wirelessly via thewireless communication interface 175 to a vehicle 101. The vehicle 101computer 110 may be programmed to receive data via the vehicle 101wireless interface 140.

As discussed above, example vehicle 101 may include various componentssuch the computer 110, actuator(s) 120, sensors 130, the wirelessinterface 140, and/or other components such as discussed herein below.The vehicle 101 may have a reference point 150, e.g., which may be anintersection of the vehicle's longitudinal and lateral axes (the axescan define respective longitudinal and lateral center lines of thevehicle 101 so that the reference point 150 may be referred to as avehicle 101 center point). Dimensions of the vehicle 101 may bespecified with a length L, a width W, a height H (see FIG. 1B).

The computer 110 includes a processor and a memory. The memory includesone or more forms of computer-readable media, and stores instructionsexecutable by the computer 110 for performing various operations,including as disclosed herein.

The computer 110 may operate the vehicle 101 in an autonomous,semi-autonomous, or non-autonomous mode. For purposes of thisdisclosure, an autonomous mode is defined as one in which each ofvehicle 101 propulsion, braking, and steering are controlled by thecomputer 110; in a semi-autonomous mode the computer 110 controls one ortwo of vehicle 101 propulsion, braking, and steering; in anon-autonomous mode, a human operator controls vehicle propulsion,braking, and steering.

The computer 110 may include programming to operate one or more ofvehicle brakes, propulsion (e.g., control of acceleration in the vehicle101 by controlling one or more of an internal combustion engine,electric motor, hybrid engine, etc.), steering, climate control,interior and/or exterior lights, etc., as well as to determine whetherand when the computer 110, as opposed to a human operator, is to controlsuch operations.

The computer 110 may include or be communicatively coupled to, e.g., viaa vehicle communications bus (not shown) as described further below,more than one processor, e.g., controllers or the like included in thevehicle for monitoring and/or controlling various vehicle controllers,e.g., a powertrain controller, a brake controller, a steeringcontroller, etc. The computer 110 is generally arranged forcommunications on a vehicle communication network such as a bus in thevehicle such as a controller area network (CAN) or the like. Via thevehicle network, the computer 110 may transmit messages to variousdevices in the vehicle 101 and/or receive messages from the sensors 130,actuators 120, etc.

The vehicle 101 actuators 120 may be implemented via circuits, chips, orother electronic components that can actuate various vehicle subsystemsin accordance with appropriate control signals as is known. Theactuators 120 may be used to control braking, acceleration, and steeringof the vehicle 101. As an example, the vehicle 101 computer 110 mayoutput control instructions to control the actuators 120.

The vehicle 101 may include one or more position sensor(s) 130,providing data encompassing location coordinates x_(veh), y_(veh) of areference point 158 and/or an orientation θ_(veh) of the vehicle 101. Asdiscussed above, due to, e.g., an inaccuracy of the vehicle 101 sensor130, the position sensor 130 may identify the reference point 158 withthe location coordinates x_(veh), y_(veh) instead of the real referencepoint 150. The 2D location coordinates herein specify a projection of avehicle 101 reference point 158 on the ground surface. An elevationcoordinate z_(veh) can be determined based on the height H of thevehicle 101, e.g., stored in a computer 110 memory. In one example, theelevation z_(veh) coordinate of a center point 150 may be half of theheight H. The position sensor 130 may include a GPS sensor 130, awireless sensor measuring time-of-flight (ToF), a camera sensor, a radarsensor, and/or a Lidar sensor. The computer 110 may be programmed todetermine, based on data received from the sensor(s) 130, the locationcoordinates x_(veh), y_(veh), z_(veh) and/or an orientation θ_(veh)relative to a Cartesian coordinates system with the X, Y, Z axes 180,185, 190, e.g., GPS coordinate system.

In one example, the computer 110 may be programmed to determine locationcoordinates x_(veh), y_(veh) and/or an orientation θ_(veh) of thevehicle 101 based on data received from the depth detection sensor 130and map data, e.g., using localization techniques.

With reference to FIG. 1A, location coordinates x, y show actuallocation coordinates of the vehicle 101 reference point 150. Anorientation θ is an actual orientation of the vehicle 101. However, asshown in FIG. 1A, the location coordinates x_(veh), y_(veh) and/or anorientation θ_(veh) determined based on vehicle sensor 130 data maydiffer from the actual location coordinates x, y and/or the actualorientation θ of the vehicle 101, e.g., due to an inaccuracy of theposition sensor 130.

In a non-limiting example, the computer 110 can be programmed to receiveobject data from an external node, and, upon identifying a point 155, inthe received object data, that is within a volume 195 defined usingvehicle 101 position data received from a vehicle 101 sensor 130, todetermine an adjusted vehicle position based on the identified point 155and the vehicle 101 position.

In the present context, the point 155 is a point in and/or on thevehicle 101 specified in the object data received from the sensor 165.For example, the point 155 may be a reference point 155 specified in thereceived object data (see Table 1). In another example, the point 155may be a point on an exterior surface of the vehicle 101 included in thepoint cloud data. With reference to FIG. 1A, the data included in theobject data pertaining to the point 155 include the location coordinatesx_(ix), y_(ix) and/or the orientation θ_(ix).

In the present context, the vehicle 101 position received from a vehicle101 sensor 130 means location coordinates x_(veh), y_(veh) (or 3Dlocation coordinates x_(veh), y_(veh), z_(veh), as discussed above)and/or the orientation θ_(veh). As shown in FIG. 1A, locationcoordinates x_(veh), y_(veh) and/or the orientation θ_(veh) may differfrom the actual location coordinates x, y of the reference point 150and/or the actual orientation θ of the vehicle 101.

The volume 195 is defined using the location data received from thevehicle 101 sensor 130, e.g., location coordinates x_(veh), y_(veh), andoptionally the elevation coordinate z_(veh) and/or the vehicle height H.The volume 195 may be a rectangular solid shaped volume having anestimated length L_(e), an estimated width W_(e), and an estimatedheight H_(e) (see FIG. 1B). A bottom of the volume 195 may be centeredat the location coordinates x_(veh), y_(veh) and directed in a samedirection as of the direction of the vehicle 101 (based on received datafrom the sensors 130). The estimated height H_(e) may be specified basedon a vehicle 101 height, e.g., 2 meters (m). The computer 110 may beprogrammed to estimate the length L_(e) and width W_(e) of the volume195 based on the equations (1)-(2). In one example, parameters a, b eachmay be set to a value of 2, e.g., to account for inaccuracies of each ofthe sensors 130, 165. In other words, an adjustment of parameters a, bprovides a possibility of shrinking or enlarging the volume 195 todetermine whether to ignore or accept received object data as matchingdata to the vehicle 101. Additionally, or alternatively, the computer110 may be programmed to estimate the dimensions L_(e), W_(e) of thevolume 195 based on filtered sensor 130 data, as discussed below withreference to the FIGS. 2A-2B.

L _(e) =a·L  (1)

W _(e) =b·W  (2)

FIGS. 2A-2B illustrates a flowchart of an example process 200 foroperating the vehicle 101. In one example, the computer 110 may beprogrammed to execute blocks of the process 200.

The process 200 begins in a block 210, in which the computer 110receives object data broadcasted by the sensor 165. As discussed above,the broadcasted object data may include point cloud data and/or objectdata, e.g., Table 1.

Next, in a block 220, the computer 110 receives data from the sensor 130of the vehicle 101. The computer 110 may be programmed to receive datafrom position sensor 130, depth detection sensor 130, etc.

Next, in a block 230, the computer 110 determines vehicle 101 firstposition data including 2D location coordinates x_(veh), y_(veh) or 3Dlocation coordinates x_(veh), y_(veh), z_(veh) and/or the orientationθ_(veh). “First” and “second” are used herein to differentiate betweendata received from vehicle 101 sensor 130 and data received from anexternal node such as data from sensor 165. In the present context,first and second position data are sometimes referred to, respectively,as vehicle position data received from the sensor 130 andextra-positional data received from an external node, e.g., from thesensor 165. The computer 110 may be programmed to determine vehiclelongitudinal and lateral speed {dot over (x)}_(veh), {dot over(y)}_(veh) and/or a rotational speed {dot over (θ)}_(veh) based on thelocation coordinates x_(veh), y_(veh) and/or orientation θ_(veh)

Next, in a block 240, the computer 110 applies a first filter F₁ to thereceived first vehicle position data. The data received from the sensor130 may include noise. A filter is any suitable linear-quadratic stateestimation filter. Non-limiting examples include a Kalman filter, anextended Kalman filter, an unscented Kalman filter, a recursive Bayesianestimation, a low-pass filter, etc. In one example, with reference toequations (3) and (4), the computer 110 may be programmed to generatethe filtered first position X_(veh) _(f) by applying a first Kalmanfilter F₁ to the first position X_(veh) of the vehicle 101. With respectto equation (3), the first position X_(veh) of the vehicle 101 mayadditionally include the longitudinal and lateral speed {dot over(x)}_(veh), {dot over (y)}_(veh) and/or a rotational speed {dot over(θ)}_(veh).

X _(veh)=[x _(veh) y _(veh) θ_(veh)]  (3)

X _(veh) _(f) =F ₁(X _(veh))  (4)

The first Kalman filter F₁ may be specified based on attributes, e.g., adistribution of a noise in sensor data, a motion model of the vehicle101, etc. A Kalman filter F₁ typically includes a covariance matrix,e.g., the first covariance matrix Q_(veh) for filtering the sensor 130data received from the vehicle 101 position sensor 130. A covariance isa measure of a joint variability of multiple random variables, e.g., thelocation coordinates x_(veh), y_(veh). The covariance matrix Q_(veh) maybe determined based at least in part on the sensor 130 technicalcharacteristics and/or via empirical methods, e.g., collecting data fromthe sensor 130 and analyzing the collected data with reference to groundtruth data to determine the covariance matrix Q_(veh).

Additionally, or alternatively, the computer 110 may be programmed tofilter the vehicle 101 first position X_(veh) by applying a low-passfilter F₁ to the first position X_(veh). A low-pass filter is a filterthat passes signals with a frequency lower than a specified cutofffrequency and attenuates (or weakens) signals with frequencies higherthan the cutoff frequency. In one example, the cutoff frequency of thefilter F₁ may be specified based on a frequency, e.g., 100 Hz, of noiseincluded in the data received from the sensor 130. For example, the cutoff frequency may be a frequency, e.g., 80 Hz that is less than thespecified noise frequency.

Next, in a decision block 250, the computer 110 determines whether asecond vehicle position (or extra-positional data) is identified in thebroadcast data. The computer 110 may be programmed to extract, from theobject-data set received via the external node, e.g., the sensor 165,extra-positional data X_(ix) that correlates with vehicle position dataX_(veh). For example, with reference to equation (5), the computer 110may be programmed to determine that the broadcast data includes a secondposition data for the vehicle 101 upon identifying, in the broadcastdata, an object with a reference point 155 with location coordinatesX_(ix) within the volume 195 (i.e., upon determining that a referencepoint 155 such as center-point of the object is within the specifiedvolume 195). Thus, the computer 110 may be programmed to determine thesecond location coordinates X_(ix) as the second position of the vehicle101 (which will be fused later with the first position to determine anadjusted position). With respect to equation (5), the second vehicleposition X_(ix) may additionally include the longitudinal and lateralspeed {dot over (x)}_(ix), {dot over (y)}_(ix) and/or the rotationalspeed {dot over (θ)}_(ix).

X _(ix)=[x _(ix) y _(ix) θ_(ix)]  (5)

The computer 110 may be further programmed to determine the identifiedobject location coordinates X_(ix) as the second position of the vehicle101 upon determining at least one of (i) a type, e.g., car, truck, etc.,of the identified object in the broadcast data matches the type of thevehicle 101, e.g., stored in a computer 110 memory, and (ii) dimensionsof the identified object in the broadcast data match the dimensions ofthe vehicle 101. In the present context, “matching dimensions” may meandimensions that have a difference less than a maximum differencethreshold, e.g., 10%. Additionally, or alternatively, with reference toequation (6), the computer 110 may be programmed to determine theidentified object location coordinates X_(ix) as the second position ofthe vehicle 101 upon determining that a difference between theorientation θ_(ix) of the identified object and the orientation θ_(veh)of the vehicle 101 determined based on vehicle 101 sensor 130 data isless than a threshold θ_(th), e.g., 30 degrees.

|θ_(ix)−θ_(veh)|<θ_(th)  (6)

As discussed above, the broadcast object data may include a point cloudand/or object data such as shown in Table 1. Thus, in the presentcontext, the point 155 may be (i) a point in the point cloud data, e.g.,any point on an outer surface of the vehicle 101, i.e., any point withinthe volume 195 with an elevation, e.g., 30 centimeter (cm), above theground surface (in order to exclude Lidar reflections from the groundsurface), and/or (ii) a reference point 155 of an object included in alist of objects, e.g., as specified in Table 1.

If the computer 110 determines that the point 155 location coordinatesx_(ix), y_(ix), z_(ix) is within the volume 195 or location coordinatesx_(ix), y_(ix) of a projection of the point 155 on the ground surface iswithin a bottom surface (a 2D area on the ground surface) of the volume195, then the process 200 proceeds to a block 270 (see FIG. 2B);otherwise the process 200 proceeds to a block 260.

In the block 260, the computer 110 operates the vehicle 101 based atleast in part on the first vehicle 101 position determined based onvehicle 101 sensor 130 data. For example, the computer 110 may beprogrammed to actuate vehicle 101 propulsion, steering, and/or brakingactuator(s) 120 based on a specified destination, the first positiondata determined based on GPS sensor 130 data, etc. In other words, whenno point 155 within the volume 195 is identified, the computer 110 mayoperate the vehicle 101 without fusing the sensor 130 data with any datafrom an external node. Following the block 260, the process 200 ends, orreturns to a block 210, although not shown in FIG. 2A.

Now turning to FIG. 2B, in the block 270, the computer 110 applies asecond filter F₂ to the position data of the identified point 155 (i.e.,the second vehicle position data). For example, with reference toequation (7), the computer 110 may be programmed to generate a filteredsecond position by applying a second Kalman filter F₂ to the secondposition X_(ix) of the vehicle 101. A sensor 165 covariance matrixQ_(ix) may specify covariance of broadcast data received from the sensor165. As discussed above, a covariance matrix Q_(ix) may be determinedbased on the technical characteristics of the sensor 165 and/or viaempirical methods. In one example, the computer 110 may be programmed toreceive the covariance matrix Q_(ix) and/or one or more technicalcharacteristics of the second Kalman filter F₂ from the sensor 165computer 170 via the wireless communication network.

X _(ix) _(f) =F ₂(X _(ix))  (7)

Additionally, or alternatively, the computer 110 may be programmed tofilter the second position data X_(ix) by applying a low-pass filter F₂to the second position X_(ix). In one example, the cut off frequency ofthe filter F₂ may be specified based on a frequency, e.g., 100 Hz, ofnoise included in the broadcast data received from the sensor 165. Forexample, the cut off frequency may be a frequency, e.g., 80 Hz, lessthan the specified noise frequency.

Next, in a block 280, the computer 110 fuses the filtered secondposition X_(ix) _(f) (or filtered extra-positional data) and thefiltered vehicle position data X_(veh) _(f) to improve vehicle 101localization. In the present context, “to fuse” means to merge two setsof position-related data into a single set for the purpose of improvingvehicle localization. A result of fusing the vehicle position data andextra-positional data from the external node is herein referred to as anadjusted position. The computer 110 may be programmed to determine anadjusted vehicle position X_(a) including adjusted location coordinatesx_(a), y_(a) and/or an adjusted orientation θ_(a) based on the filteredfirst and second vehicle position data X_(ix) _(f) and X_(veh) _(f) ,using various data fusion techniques.

In one example, the computer 110 may be programmed based on equation (8)to fuse the filtered first and second position data. FIG. 1A showsadjusted vehicle position x_(a), y_(a) and the adjusted orientationθ_(a).

$\begin{matrix}{X_{a} = \frac{\frac{X_{veh}}{Q_{veh}} + \frac{X_{ix}}{Q_{ix}}}{\frac{1}{Q_{veh}} + \frac{1}{Q_{ix}}}} & (8)\end{matrix}$

Next, in a block 290, the computer 110 operates the vehicle 101 based onthe fused first and second position data X_(xi) _(f) and X_(veh) _(f) .For example, the computer 110 may be programmed to operate the vehicle101 based on the adjusted vehicle 101 position X_(a). The computer 110may be programmed to perform a vehicle function based on determining theadjusted vehicle 101 position data X_(a). Non-limiting examples ofperforming a vehicle function include to actuate at least one of thevehicle 101 propulsion, steering, and/or braking actuators 120.Following the block 290, the process 200 ends, or alternatively, returnsto the block 210, although not shown in FIGS. 2A-2B.

With reference to process 200, (i) means for receiving broadcast objectdata may include a wireless interface 140 of the vehicle 101 configuredto communicate with an external node, e.g., the wireless communicationinterface 175 of the sensor 165; (ii) means for determining a firstposition of a vehicle 101 may be position sensor 130 or any other typeof sensor based on which the computer 110 may localize the vehicle 101,e.g., localizing based on lidar sensor 130 data; (iii) means foridentifying a second position of the vehicle 101 and means fordetermining a fused position of the vehicle 101 may include the vehicle101 computer 110 programmed to execute blocks of the process 200.

Thus, there has been described a system for improving vehiclelocalization that comprises a vehicle computer and a vehicle positionsensor. According to one example, the computer is programmed to executea process to detect improve vehicle position data accuracy using objectdata received from an external node. The vehicle computer may thenoperate the vehicle based on data improved vehicle position data

Computing devices as discussed herein generally each includeinstructions executable by one or more computing devices such as thoseidentified above, and for carrying out blocks or steps of processesdescribed above. Computer-executable instructions may be compiled orinterpreted from computer programs created using a variety ofprogramming languages and/or technologies, including, withoutlimitation, and either alone or in combination, Java™, C, C++, VisualBasic, Java Script, Perl, HTML, etc. In general, a processor (e.g., amicroprocessor) receives instructions, e.g., from a memory, acomputer-readable medium, etc., and executes these instructions, therebyperforming one or more processes, including one or more of the processesdescribed herein. Such instructions and other data may be stored andtransmitted using a variety of computer-readable media. A file in thecomputing device is generally a collection of data stored on a computerreadable medium, such as a storage medium, a random access memory, etc.

A computer-readable medium includes any medium that participates inproviding data (e.g., instructions), which may be read by a computer.Such a medium may take many forms, including, but not limited to,non-volatile media, volatile media, etc. Non-volatile media include, forexample, optical or magnetic disks and other persistent memory. Volatilemedia include dynamic random access memory (DRAM), which typicallyconstitutes a main memory. Common forms of computer-readable mediainclude, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, any other magnetic medium, a CD-ROM, DVD, any otheroptical medium, punch cards, paper tape, any other physical medium withpatterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any othermemory chip or cartridge, or any other medium from which a computer canread.

With regard to the media, processes, systems, methods, etc. describedherein, it should be understood that, although the steps of suchprocesses, etc. have been described as occurring according to a certainordered sequence, such processes could be practiced with the describedsteps performed in an order other than the order described herein. Itfurther should be understood that certain steps could be performedsimultaneously, that other steps could be added, or that certain stepsdescribed herein could be omitted. In other words, the descriptions ofsystems and/or processes herein are provided for the purpose ofillustrating certain embodiments, and should in no way be construed soas to limit the disclosed subject matter.

Accordingly, it is to be understood that the present disclosure,including the above description and the accompanying figures and belowclaims, is intended to be illustrative and not restrictive. Manyembodiments and applications other than the examples provided would beapparent to those of skill in the art upon reading the abovedescription. The scope of the invention should be determined, not withreference to the above description, but should instead be determinedwith reference to claims appended hereto and/or included in anon-provisional patent application based hereon, along with the fullscope of equivalents to which such claims are entitled. It isanticipated and intended that future developments will occur in the artsdiscussed herein, and that the disclosed systems and methods will beincorporated into such future embodiments. In sum, it should beunderstood that the disclosed subject matter is capable of modificationand variation.

What is claimed is:
 1. A computer, comprising a processor and a memory,the memory storing instructions executable by the processor to: receive,in a vehicle, object data from an external node; and upon identifying apoint, in the received object data, that is within a volume definedusing vehicle position data received from a vehicle sensor, determine anadjusted vehicle position based on the identified point and the vehicleposition data.
 2. The computer of claim 1, wherein the identified pointis a reference point of an object described in the received object data.3. The computer of claim 1, wherein the instructions further comprise todetermine the volume based at least in part on vehicle dimensions. 4.The computer of claim 1, wherein a bottom of the volume is centered at aprojection of a vehicle reference point on a ground surface determinedbased on the vehicle position data.
 5. The computer of claim 1, whereinthe instructions further comprise to operate the vehicle based on theadjusted vehicle position.
 6. The computer of claim 1, wherein theinstructions further comprise to: filter the vehicle position data byapplying a first Kalman filter to the vehicle position data; and filterposition data of the identified point by applying a second Kalman filterto the position data of the point.
 7. The computer of claim 1, whereinthe instructions further comprise to operate the vehicle based on thevehicle position data upon determining that the object from the externalnode lacks a point within the volume.
 8. The computer of claim 1,wherein the instructions further comprise to identify the point withinthe volume only upon determining, based on the received object data,that the identified point is a reference point of an object with a typethat matches a vehicle type.
 9. The computer of claim 1, wherein theinstructions further comprise to identify the point within the volumeonly upon determining, based on the received object data, that theidentified point is a reference point of an object with dimensions thatmatches the dimensions of the vehicle that received the object data. 10.The computer of claim 1, wherein the instructions further comprise to:determine the volume with a bottom on a ground surface withpredetermined dimensions centered a projection vehicle position on aground surface; and upon identifying an object, from the broadcast data,with a reference point that is within the determined volume, determinethe adjusted vehicle position based in part on location coordinates ofthe object reference point.
 11. The computer of claim 1, wherein theposition data includes at least a lateral coordinate, a longitudinalcoordinate, an orientation, a lateral speed, a longitudinal speed, and arotational speed of the vehicle.
 12. The computer of claim 1, whereinthe object data further include at least a lateral coordinate, alongitudinal coordinate, an orientation, a lateral speed, a longitudinalspeed, and a rotational speed of an object.
 13. The computer of claim 1,wherein the object data include at least one of location coordinates, anorientation, an object type, a speed, a rotational speed, a shape, anddimensions of the object.
 14. A computer, comprising a processor andmemory, the memory storing instructions executable by the processor to:extract, from an object-data set received via an external node,extra-positional data that correlates with vehicle position data;independently filter the extra-positional and vehicle position data; andthen fuse the filtered extra-positional and vehicle position data toimprove vehicle localization.
 15. The computer of claim 14, wherein theinstructions further comprise to operate the vehicle based on the fusedfiltered extra-positional and vehicle position data.
 16. The computer ofclaim 14, wherein the instructions further comprise to: filter thevehicle position data by applying a first Kalman filter to the vehicleposition data; and filter the extra-positional data that correlates withvehicle position data by applying a second Kalman filter to theextra-positional data that correlates with the vehicle position data.17. The computer of claim 14, wherein the instructions further compriseto operate a vehicle based on the vehicle position data upon determiningthat the extra-positional data from the external node correlates withthe vehicle position data.
 18. The computer of claim 14, wherein theextra-positional data include at least one of location coordinates, anorientation, an object type, a speed, a rotational speed, a shape, anddimensions of a vehicle.
 19. The computer of claim 14, wherein theinstructions further comprise to extract the extra-positional data thatcorrelates with the vehicle position upon determining, based on thereceived object-data set, that the extra-positional data describes anobject with dimensions that match the dimensions of the vehicle thatreceived the object-data set.
 20. A system, comprising: means forreceiving broadcast object data; means for determining a first positionof a vehicle based on vehicle sensor data; means for identifying asecond position of the vehicle based on broadcast object data receivedfrom a remote computer and the first position; and means for determininga fused position of the vehicle based on a filtered first position and afiltered second position of the vehicle.